// index.js
const defaultAvatarUrl = 'https://mmbiz.qpic.cn/mmbiz/icTdbqWNOwNRna42FI242Lcia07jQodd2FJGIYQfG0LAJGFxM4FbnQP6yfMxBgJ0F3YRqJCJ1aPAK2dQagdusBZg/0'

Page({
  data: {
    motto: 'Hello World',
    userInfo: {
      avatarUrl: defaultAvatarUrl,
      nickName: '',
    },
    hasUserInfo: false,
    canIUseGetUserProfile: wx.canIUse('getUserProfile'),
    canIUseNicknameComp: wx.canIUse('input.type.nickname'),
    // 示例物流信息 - 实际使用时请替换为真实数据
    expressInfo: {
      expressCompany: "yuantong",  // 快递公司编码，示例：圆通速递
      expressNumber: "YT1234567890", // 快递单号（测试单号）
      phone: "13800138000",         // 手机号码（顺丰必填）
      from: "广东省深圳市",          // 发货地
      to: "北京市朝阳区",           // 收货地
      orderId: "202408090001",      // 订单编号
      address: "北京市朝阳区国际金融大厦" // 收货地址
    },
    // 支持的快递公司列表
    expressCompanies: [
      { code: "yuantong", name: "圆通速递" },
      { code: "shunfeng", name: "顺丰速运" },
      { code: "zhongtong", name: "中通快递" },
      { code: "yunda", name: "韵达快递" },
      { code: "shentong", name: "申通快递" },
      { code: "ems", name: "EMS" },
      { code: "jd", name: "京东物流" },
      { code: "youzhengguonei", name: "邮政包裹" }
    ],
    // 查询方式
    queryMethod: "direct" // direct: 直接查询, h5: H5页面查询
  },
  bindViewTap() {
    wx.navigateTo({
      url: '../logs/logs'
    })
  },
  onChooseAvatar(e) {
    const { avatarUrl } = e.detail
    const { nickName } = this.data.userInfo
    this.setData({
      "userInfo.avatarUrl": avatarUrl,
      hasUserInfo: nickName && avatarUrl && avatarUrl !== defaultAvatarUrl,
    })
  },
  onInputChange(e) {
    const nickName = e.detail.value
    const { avatarUrl } = this.data.userInfo
    this.setData({
      "userInfo.nickName": nickName,
      hasUserInfo: nickName && avatarUrl && avatarUrl !== defaultAvatarUrl,
    })
  },
  getUserProfile(e) {
    // 推荐使用wx.getUserProfile获取用户信息，开发者每次通过该接口获取用户个人信息均需用户确认，开发者妥善保管用户快速填写的头像昵称，避免重复弹窗
    wx.getUserProfile({
      desc: '展示用户信息', // 声明获取用户个人信息后的用途，后续会展示在弹窗中，请谨慎填写
      success: (res) => {
        console.log(res)
        this.setData({
          userInfo: res.userInfo,
          hasUserInfo: true
        })
      }
    })
  },
  
  // 更新物流信息表单
  updateExpressInfo(e) {
    const { field } = e.currentTarget.dataset;
    const { value } = e.detail;
    
    this.setData({
      [`expressInfo.${field}`]: value
    });
  },
  
  // 选择快递公司
  selectExpressCompany(e) {
    const { code } = e.currentTarget.dataset;
    
    this.setData({
      'expressInfo.expressCompany': code
    });
  },
  
  // 切换查询方式
  switchQueryMethod: function() {
    this.setData({
      queryMethod: this.data.queryMethod === 'direct' ? 'h5' : 'direct'
    });
  },
  
  // 跳转到物流查询页面
  checkLogistics: function() {
    const { expressInfo, queryMethod } = this.data;
    
    // 验证必填字段
    if (!expressInfo.expressCompany || !expressInfo.expressNumber) {
      wx.showToast({
        title: '请填写完整的物流信息',
        icon: 'none',
        duration: 2000
      });
      return;
    }
    
    // 构建URL参数
    const params = Object.keys(expressInfo)
      .map(key => `${key}=${encodeURIComponent(expressInfo[key])}`)
      .join('&');
    
    console.log('物流查询参数：', params);
    
    // 根据查询方式选择不同页面
    const targetPage = queryMethod === 'direct' 
      ? '/pages/direct-logistics/direct-logistics'  // 直接前端查询
      : '/pages/logistics/logistics';               // H5页面查询
    
    // 跳转到物流查询页面
    wx.navigateTo({
      url: `${targetPage}?${params}`
    });
  }
})
